package com.example.jqying.androiddemo.loadimage;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.example.jqying.androiddemo.R;

public class LoadImageActivity extends AppCompatActivity {



    private ImageView mLoadImage1;
    private ImageView mLoadImage2;
    private ImageView mLoadImage3;
    private ImageView mLoadImage4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_loadimage);
        /*
        *  imageView 的ScaleType决定图片的缩放方式
        *
         */
        mLoadImage1 = (ImageView) findViewById(R.id.img_load1);
        //使用Glide 加载一张图片
        //值得注意的是Glide会默认加载各个尺寸的图片到缓存，所以不需要此功能时要手动调用其方法skipMemoryCache(true)
        //另外还有磁盘缓存diskCacheStrategy();也是默认开启的
        //使用Activity传入参数时，其生命周期会和Activity生命周期一致
        //使用Glide至少需要以下三个参数
        Glide.with(this).
                load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529834354571&di=f629699d02ad26ba04684373e9669ce7&imgtype=0&src=http%3A%2F%2Fi1.hdslb.com%2Fbfs%2Fface%2Fdea862adbff072552df1f3158125c7d9abc12392.jpg").
                into(mLoadImage1);

        mLoadImage2 = (ImageView)findViewById(R.id.img_load2);
        //使用Glide 加载一张图片
        //使用Activity传入参数时，其生命周期会和Activity生命周期一致
        //使用占位符功能placeholder，在图片未成功加载时显示
        //使用error回调，在图片加载失败时显示
        Glide.with(this).
                load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529834354570&di=d9f8f114a30d49933a40dc5c0942ac0f&imgtype=0&src=http%3A%2F%2Fimg5.hao123.com%2Fdata%2F1_17c80e7498ef45e47296e41f213321de_510").
                placeholder(R.mipmap.ic_launcher).
                error(R.mipmap.ic_launcher_round).
                into(mLoadImage2);

        mLoadImage3 = (ImageView) findViewById(R.id.img_load3);
        //使用Glide 加载一张图片
        //使用Activity传入参数时，其生命周期会和Activity生命周期一致
        // 使用缩略图功能，先加载低清晰度图片
        //使用error回调，在图片加载失败时显示
        Glide.with(this).
                load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529837128283&di=20fa4d9ccbb6ece0ae295870d8002610&imgtype=jpg&src=http%3A%2F%2Fimg2.imgtn.bdimg.com%2Fit%2Fu%3D3424955272%2C3608700882%26fm%3D214%26gp%3D0.jpg").
                thumbnail(0.2f).
                error(R.mipmap.ic_launcher_round).
                into(mLoadImage3);


        mLoadImage4 = (ImageView) findViewById(R.id.img_load4);
        //使用Glide 加载一张图片
        //使用Activity传入参数时，其生命周期会和Activity生命周期一致
        // 使用缩略图功能，先加载低清晰度图片
        //使用error回调，在图片加载失败时显示
        Glide.with(this).
                load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1529834354569&di=96698a3d5542c2e4007511398632d17d&imgtype=0&src=http%3A%2F%2Fimg3.duitang.com%2Fuploads%2Fitem%2F201602%2F08%2F20160208215344_tzdnA.jpeg").
                thumbnail(0.2f).
                skipMemoryCache(true).
                diskCacheStrategy(DiskCacheStrategy.NONE).
                error(R.mipmap.ic_launcher_round).
                into(mLoadImage4);

        /*
        *   Glide 还可以定义图片加载的优先级
        *   也可以加载Gif和Video，Video只能显示本地的Video
        *   加载Gif时注意当Gif只有一帧时会触发error回调
        *   以上是直接加载到imageView等实例中
        *   若要获取加载的图片本身则需要使用其高级功能
        *   本文参考https://www.jianshu.com/p/7ce7b02988a4
         */

    }
}
